<?php

/**
 * Clase para manejar la tabla familias
 *
 * Contiene las operaciones CRUD para la tabla 
 * registro_familia
 *
 * @author Jorge Rojas jerojasol@gmail.com
 */
class familias {

    private $idfamilia;
    private $tipo_identificacion;
    private $identificacion;
    private $nombres;
    private $apellidos;
    private $descripcion_familia;
    private $numero_cuenta;
    private $banco_cuenta;
    private $estado;
    private $estrato;
    private $actividadEconomica;

    public function getIdfamilia() {
        return $this->idfamilia;
    }

    public function setIdfamilia($idfamilia) {
        $this->idfamilia = $idfamilia;
    }

    public function getTipo_identificacion() {
        return $this->tipo_identificacion;
    }

    public function setTipo_identificacion($tipo_identificacion) {
        $this->tipo_identificacion = $tipo_identificacion;
    }

    public function getIdentificacion() {
        return $this->identificacion;
    }

    public function setIdentificacion($identificacion) {
        $this->identificacion = $identificacion;
    }

    public function getNombres() {
        return $this->nombres;
    }

    public function setNombres($nombres) {
        $this->nombres = $nombres;
    }

    public function getApellidos() {
        return $this->apellidos;
    }

    public function setApellidos($apellidos) {
        $this->apellidos = $apellidos;
    }

    public function getDescripcion_familia() {
        return $this->descripcion_familia;
    }

    public function setDescripcion_familia($descripcion_familia) {
        $this->descripcion_familia = $descripcion_familia;
    }

    public function getNumero_cuenta() {
        return $this->numero_cuenta;
    }

    public function setNumero_cuenta($numero_cuenta) {
        $this->numero_cuenta = $numero_cuenta;
    }

    public function getBanco_cuenta() {
        return $this->banco_cuenta;
    }

    public function setBanco_cuenta($banco_cuenta) {
        $this->banco_cuenta = $banco_cuenta;
    }

    public function getEstado() {
        return $this->estado;
    }

    public function setEstado($estado) {
        $this->estado = $estado;
    }

    public function getEstrato() {
        return $this->estrato;
    }

    public function setEstrato($estrato) {
        $this->estrato = $estrato;
    }

    public function getActividadEconomica() {
        return $this->actividadEconomica;
    }

    public function setActividadEconomica($actividadEconomica) {
        $this->actividadEconomica = $actividadEconomica;
    }

    /**
     * Constructor de la clase
     * @access public
     */
    public function __construct() {
        
    }

    /**
     * Trae todas las familias
     * @param object $xoopsDB conexión
     * @access public
     * @return string
     */
    public function consultarAll($xoopsDB) {
        $query = "select * from registro_familia where idfamilia is not null ";

        if (!empty($this->nombres)) {
            $query = $query . " and (nombres like '%$this->nombres%' or apellidos like '%$this->nombres%') ";
        }
        if (!empty($this->tipo_identificacion)) {
            $query = $query . " and tipo_identificacion= $this->tipo_identificacion ";
        }
        if (!empty($this->identificacion)) {
            $query = $query . " and identificacion=$this->identificacion ";
        }
        if (!empty($this->numero_cuenta)) {
            $query = $query . " and numero_cuenta = $this->numero_cuenta ";
        }

        $res = $xoopsDB->query($query);

        $familias = array();
        $q = 1;
        while ($myrow = $xoopsDB->fetchArray($res)) {
            $familias[$q]['idfamilia'] = $myrow['idfamilia'];
            $familias[$q]['tipo_identificacion'] = $this->descripcionTI($myrow['tipo_identificacion']);
            $familias[$q]['identificacion'] = $myrow['identificacion'];
            $familias[$q]['nombres'] = $myrow['nombres'];
            $familias[$q]['apellidos'] = $myrow['apellidos'];
            $familias[$q]['descripcion_familia'] = $myrow['descripcion_familia'];
            $familias[$q]['numero_cuenta'] = $myrow['numero_cuenta'];
            $familias[$q]['banco_cuenta'] = $myrow['banco_cuenta'];
            $familias[$q]['estado'] = $myrow['estado'];
            $familias[$q]['estrato'] = $myrow['estrato'];
            $familias[$q]['actividadEconomica'] = $myrow['actividadEconomica'];
            $q++;
        }
        return $familias;

        if ($familias) {
            return $familias;
        } else {
            return false;
        }
    }

    public function consultarNextId($xoopsDB) {

        $query = "SELECT `auto_increment` FROM INFORMATION_SCHEMA.TABLES
                WHERE table_name = 'registro_familia'";

        $res = $xoopsDB->query($query);
        if ($res) {
            $myrow = $xoopsDB->fetchArray($res);
        }

        if ($myrow['auto_increment']) {
            return $myrow['auto_increment'];
        } else {
            return false;
        }
    }

    /**
     * Consultar por id
     * @param object $id identificador de la familia que se desea buscar
     * @param object $xoopsDB conexión
     * @access public
     * @return string
     */
    public function consultarById($id, $xoopsDB) {
        $query = "select * from registro_familia where idfamilia = $id";

        $res = $xoopsDB->query($query);
        if ($res) {

            $myrow = $xoopsDB->fetchArray($res);

            $this->setApellidos($myrow['apellidos']);
            $this->setIdfamilia($myrow['idfamilia']);
            $this->setTipo_identificacion($myrow['tipo_identificacion']);
            $this->setIdentificacion($myrow['identificacion']);
            $this->setNombres($myrow['nombres']);
            $this->setDescripcion_familia($myrow['descripcion_familia']);
            $this->setNumero_cuenta($myrow['numero_cuenta']);
            $this->setBanco_cuenta($myrow['banco_cuenta']);
            $this->setEstado($myrow['estado']);
            $this->setEstrato($myrow['estrato']);
            $this->setActividadEconomica($myrow['actividadEconomica']);

            return $res;
        } else {
            return false;
        }
    }

    /**
     * Busca una familia por su id
     * @param object $xoopsDB conexión
     * @access public
     * @return string
     */
    public function updateById($xoopsDB) {
        $query = "	UPDATE `siambiental_psa`.`registro_familia`
                            SET
                            `tipo_identificacion` = '$this->tipo_identificacion',
                            `identificacion` = '$this->identificacion',
                            `nombres` = '$this->nombres',
                            `apellidos` = '$this->apellidos',
                            `descripcion_familia` = '$this->descripcion_familia',
                            `numero_cuenta` = '$this->numero_cuenta',
                            `banco_cuenta` = '$this->banco_cuenta',
                            `estado` = '$this->estado', 
                            `estrato` = '$this->estrato', 
                            `actividadEconomica` = '$this->actividadEconomica' 
                            WHERE `idfamilia` = $this->idfamilia";

        $res = $xoopsDB->query($query);
        if (!$res) {
            return false;
        } else {
            return true;
        }
    }

    /**
     * Inserta una nueva familia
     * @param object $xoopsDB conexión
     * @access public
     * @return string
     */
    public function insert($xoopsDB) {
        $query = " INSERT INTO `siambiental_psa`.`registro_familia`
                    (`tipo_identificacion`,
                    `identificacion`,
                    `nombres`,
                    `apellidos`,
                    `descripcion_familia`,
                    `numero_cuenta`,
                    `banco_cuenta`,
                    `estrato`,
                    `actividadEconomica`,
                    `estado`)
                    VALUES
                    ('$this->tipo_identificacion',
                    '$this->identificacion',
                    '$this->nombres',
                    '$this->apellidos',
                    '$this->descripcion_familia',
                    '$this->numero_cuenta',
                    '$this->banco_cuenta',
                    '$this->estrato',
                    '$this->actividadEconomica',
                    '$this->estado')";

        $res = $xoopsDB->query($query);
        if (!$res) {
            return false;
        } else {
            return true;
        }
    }

    /**
     * Retorna la descripcion del tipo de identificación
     * 
     * @param type $tipoIdentificacion tipo de identificacion del cual se desea conocer la descripcion
     * @return string
     */
    function descripcionTI($tipoIdentificacion) {

        $descripcion = "";
        if ($tipoIdentificacion == 1) {
            $descripcion = "CC. ";
        } else {
            $descripcion = "CE. ";
        }
        return $descripcion;
    }

}

?>